package com.meteor.user.service;

import com.meteor.api.feign.param.UserParam;
import com.meteor.framework.common.utils.PageResult;
import com.meteor.framework.mybatis.service.BaseService;
import com.meteor.user.entity.SysUser;
import com.meteor.user.query.SysRoleUserQuery;
import com.meteor.user.query.SysUserQuery;
import com.meteor.user.vo.SysMerchantVO;
import com.meteor.user.vo.SysUserVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 用户管理
 *
 * @author lynn
 * @date 2024/1/03
 */
public interface SysUserService extends BaseService<SysUser> {

    PageResult<SysUserVO> page(SysUserQuery query);

    void save(SysUserVO vo);

    void update(SysUserVO vo);

    void delete(List<String> idList);

    SysUserVO getByMobile(String mobile,String communityId);

    /**
     * 修改密码
     *
     * @param id          用户ID
     * @param newPassword 新密码
     */
    void updatePassword(String id, String newPassword);

    /**
     * 分配角色，用户列表
     */
    PageResult<SysUserVO> roleUserPage(SysRoleUserQuery query);

    /**
     * 批量导入用户
     *
     * @param file     excel文件
     * @param password 密码
     */
    void importByExcel(MultipartFile file, String password);

    /**
     * 导出用户信息表格
     */
    void export();

    List<SysUser> userIdsList(UserParam userParam);

    List<SysUserVO> allList();

}
